1. Technical Field
The present invention relates generally to data processing, and in particular to data processing in an enterprise composed of a plurality of nodes. Still more particularly, the present invention provides a method, system, and computer program product for deploying applications to nodes in an enterprise.
2. Description of Related Art
The Internet, also referred to as an “internetwork”, is a set of computer networks, possibly dissimilar, joined together by means of gateways that handle data transfer and the conversion of messages from a protocol of the sending network to a protocol used by the receiving network. When capitalized, the term “Internet” refers to the worldwide collection of networks and gateways that use the TCP/IP suite of protocols.
The Internet has become a cultural fixture as a source of both information and entertainment. Many businesses are creating Internet sites as an integral part of their marketing efforts, informing consumers of the products or services offered by the business or providing other information seeking to engender brand loyalty. Many federal, state, and local government agencies are also employing Internet sites for informational purposes, particularly agencies which must interact with virtually all segments of society such as the Internal Revenue Service and secretariats of state. Additionally, providing informational guides and/or searchable databases of online public records may reduce operating costs. Further, the Internet is becoming increasingly popular as a medium for commercial transactions.
Currently, the most commonly employed method of transferring data over the Internet is to employ the World Wide Web environment, also called simply “the Web”. Other Internet protocols exist for transferring information, such as File Transfer Protocol (FTP) and Gopher, but have not achieved the popularity of the Web. In the Web environment, servers and clients effect data transaction using the Hypertext Transfer Protocol (HTTP), a commonly-known protocol for handling the transfer of various data files (e.g., text, still graphic images, audio, motion video, etc.).
The information in various data files is formatted for presentation to a user by a standard page description language, the Hypertext Markup Language (HTML). In addition to basic presentation formatting, HTML allows developers to specify “links” to other Web resources identified by a Uniform Resource Locator (URL). A URL is a special syntax identifier defining a communications path to specific information. Each logical block of information accessible to a client, called a “page” or a “Web page”, is identified by a URL. The URL provides a universal, consistent method for finding and accessing this information, not necessarily for the user, but mostly for the user's Web “browser”. A browser is a program capable of submitting a request for information identified by an identifier, such as, for example, a URL. A user may enter a domain name through a graphical user interface (GUI) for the browser to access a source of content. The domain name is automatically converted to the Internet Protocol (IP) address by a domain name system (DNS), which is a service that translates the symbolic name entered by the user into an IP address by looking up the domain name in a database.
The Internet also is widely used to transfer applications to users using browsers. With respect to commerce on the Web, individual consumers and businesses use the Web to purchase various goods and services. In offering goods and services, some companies offer goods and services solely on the Web while others use the Web to extend their reach.
Websites are hosted on server data processing systems. Often more than one server data processing system supports transactions or requests directed to a single website. In other words, for a particular URL to a website, more than one server data processing system is available to handle requests from users on the Web. These server data processing systems are often organized onto a grouping referred to as a cluster or server cluster. A cluster is a group of server data processing systems that provides fault tolerance and/or load balancing. If one server data processing system in the cluster fails, one or more additional server data processing systems are still available. Load balancing distributes the workload over multiple data processing system in the cluster.
These server data processing systems run applications used to handle requests. For example, the applications for a website may include applications used to provide information about goods and services, provide a shopping cart, and process orders. Updates to these applications are often made to ensure that the applications and information provided by the applications are up to date. These updates may include, for example, the installation of new application modules. One example of an installation of a new application module could arise from an update of the database tool that accesses data sources associated with a server cluster. Any tools in server data processing systems that are down, out of service, or otherwise unavailable when an installation of a new application module occurs will, under the prior art, be out of synchronization with the rest of the cluster in terms of the use of database tools.
As a result, errors may occur when requests are handled by a server that is out of synchronization with the rest of the cluster. These errors may include, for example, providing incorrect information regarding goods and services that are offered. Another error, for example, is a “data source not found” error. Currently, these server data processing systems remain out of synchronization until a forced resynchronization of the cluster occurs. These resynchronizations require manual intervention by an administrator for the cluster. Further, for this process to occur the administrator must be aware that the server data processing system is now available.
Therefore, it would be advantageous to have an improved method, apparatus, and computer instructions for guaranteeing synchronization installation of new application modules in a set of data processing systems.